package datosFamilias;

import java.util.ArrayList;
import java.util.Hashtable;

import principal.Valoracion;

public class Persona extends FamiliaAbstracta
{
    private int id;
    private String nombre;
    private Hashtable<Integer, ArrayList<String>> caracteristicas;
    private int edad;
    
    public Persona(int idPersona, String nombrePersona, int edadPersona, String direccionPersona)
    {
        id = idPersona;
        nombre = nombrePersona;
        edad = edadPersona;
        direccion = direccionPersona;
        caracteristicas = new Hashtable<Integer, ArrayList<String>>();
    }
    
    public void agregarDato(String dato, int criterio)
    {
        if(!caracteristicas.containsKey(criterio))
        {
            caracteristicas.put(criterio, new ArrayList<String>());
        }
        (caracteristicas.get(criterio)).add(dato);
    }
        
    public int obtenerID()
    {
        return id;
    }
    
    public String obtenerNombre()
    {
        return nombre;
    }
    
    public int obtenerEdad()
    {
        return edad;
    }
  
    public ArrayList<String> obtenerDatos(int criterio)
    {
        return caracteristicas.get(criterio);
    }

    public boolean contieneDatos(int criterio)
    {
        return caracteristicas.containsKey(criterio);
    }
    
    public boolean equals(Persona p)
    {
        return id == p.obtenerID();
    }

    @Override
    public int calcularPuntajes(int criterio) {
        int puntaje = 0;
        if(caracteristicas.containsKey(criterio))
        {
            ArrayList<String> car = caracteristicas.get(criterio);
            for(int index = 0; index < car.size(); index++)
            {
                puntaje += Valoracion.getValoracion(car.get(index));
            }   
        }
        return puntaje;     
    }
}
